export enum LoggerLevel {
    /**
     * 调试级别，用于记录开发过程中的调试信息。
     */
    Debug = -1,
    /**
     * 信息级别，用于记录程序运行中的常规信息。
     */
    Info = 0,
    /**
     * 警告级别，用于记录潜在的问题或意外情况。
     */
    Warn,
    /**
     * 错误级别，用于记录程序中的错误事件。
     */
    Error,
}

/**
 * 根据环境获取默认日志级别
 */
export function getDefaultLoggerLevel(): LoggerLevel {
    // 检查环境变量
    const env = process.env.NODE_ENV || 'development';
    
    switch (env) {
        case 'production':
            return LoggerLevel.Error;  // 生产环境只记录错误
        case 'staging':
        case 'pre-production':
            return LoggerLevel.Warn;   // 预发布环境记录警告及以上
        case 'test':
            return LoggerLevel.Info;   // 测试环境记录信息及以上
        case 'development':
            return LoggerLevel.Debug;  // 开发环境记录所有日志
        default:
            return LoggerLevel.Error;  // 生产环境只记录错误
    }
}

/**
 * 默认日志级别配置
 */
export const DEFAULT_LEVEL = getDefaultLoggerLevel();

